package com.edu.d6_tcp3;

import java.io.DataInputStream;
import java.io.InputStream;
import java.net.Socket;

/**
 * 将ServerReaderThread发送给客户端的消息，由socket通道交给线程进行处理
 * 因为发送的时候，是进行遍历socket的，所以说，发送过来的socket交给了，每个在线的线程进行处理
 * 也就是说，群发过来了消息，每个客户端都有一个线程，每个线程都收到了消息，进而实现了群聊。
 */

public class ClentReaderThread extends Thread{
    private Socket socket;

    public ClentReaderThread(Socket socket) {
        this.socket = socket;
    }

    @Override
    public void run() {
        try {
            InputStream inputStream = socket.getInputStream();
            /**
             * 4、用数据输入流来包装字节流
             */
            DataInputStream dataInputStream = new DataInputStream(inputStream);
            while (true) {
                try {
                    String s = dataInputStream.readUTF();
                    System.out.println(s);
                } catch (Exception e) {
                    System.out.println("自己下线了"+socket.getRemoteSocketAddress());
                    dataInputStream.close();
                    socket.close();
                    break;
                }
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}
